package error

import (
	"errors"
	"fmt"
	"time"
)

func check(s string) error {
	if s == "" {
		return errors.New("字符串不能为空")
	}
	return nil
}

func Check() {
	check("hello")
	err := check("")
	fmt.Printf("err.Error(): %v\n", err.Error())
}

/*
	自定义错误
*/

type MyError struct {
	When time.Time
	What string
}

// 实现Error接口
func (e *MyError) Error() string {
	return fmt.Sprintf("%v:%v", e.When, e.What)
}

func Oops() error {
	return &MyError{
		time.Now(),
		"oops 炸锅了",
	}
}

func CheckMyError() {
	if err := Oops(); err != nil {
		fmt.Printf("err.Error(): %v\n", err.Error())
	}
}
